### 项目十六 蓝牙控制LED灯

1.项目介绍

![](./media/image-20250723171305820.png)

DX-BT24 5.1蓝牙模块是为智能无线数据传输而打造，采用英国DAILOG公司14531芯片，配置256Kb 空间，遵循V5.1 BLE蓝牙规范。支持AT指令，用户可根据需要更改串口波特率、设备名称等参数，使用灵活。本模块支持UART接口，并支持蓝牙串口透传，具有成本低、体积小、功耗低、收发灵敏性高等优点，只需配备少许的外围元件就能实现其强大功能。

在实验中，我们默认为把蓝牙模块当做从机，手机当做主机。实验中我们在手机上安装对应的APP，在APP上连接蓝牙模块，然后通过手机APP控制智能家居的各元器件实现相应的功能和效果。为此我们还特别设计了分别支持安卓系统和mac系统的手机APP。

2.模块相关资料

（1）参数

- 蓝牙协议：Bluetooth Specification V5.1 BLE

- 工作距离：在开放环境中，实现40m超远距离通讯

- 工作频率：2.4GHz ISM频段

- 通信接口：UART

- 蓝牙认证：符合FCC CE ROHS REACH认证标准

- 串口参数：9600、8数据位、1停止位、无效位、无流控

- 电源：5V DC

- 工作温度：–10至+65摄氏度

（2）应用领域

DX-BT24 模块同时支持 BT5.1 BLE 协议，可以同具备 BLE 蓝牙功能的 iOS设备直接连接，支持后台程序常驻运行。主要用于短距离的数据无线传输领域。避免繁琐的线缆连接，能直接替代串口线。

BT24 模块成功应用领域：

-  蓝牙无线数据传输； 
- 手机、电脑周边设备； 
- 手持 POS 设备；
- 医疗设备无线数据传输； 
-  智能家居控制； 
- 蓝牙打印机；
-  蓝牙遥控玩具；
- 共享单车；

（3）接口说明：

![](./media/image-20250723171711409.png)

①STATE：状态脚

②RX：接收脚

③TX：发送脚

④GND：接地脚

⑤VCC：电源脚

⑥EN：使能脚

1.3实验组件

| 控制板 * 1                               | 扩展板 * 1                               | LED模块* 1                               | BT-24蓝牙* 1                             | 3P 转杜邦线母*1                          |
| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- |
| ![](./media/image-20250723144253824.png) | ![](./media/image-20250723144304891.png) | ![](./media/image-20250723144321118.png) | ![](./media/image-20250723171850237.png) | ![](./media/image-20250723144330632.png) |

4.模块接线图

![](./media/image-20250723171912148.png)

注：蓝牙对好接口插上去即可

5.实验代码

拖动代码块编写程序：

寻找代码块

（1）communication栏中拖出蓝牙代码块

![](./media/image-20250723172019436.png)

(2)**控制**栏中拖出 **如果....执行...**代码块;点击蓝色图标![](./media/image-20250723172059395.png)把否则如果 放到如果下面。

![](./media/image-20250723172112901.png)

![](./media/image-20250723172119963.png)

完整的代码如下

![](./media/image-20250723172138124.png)

![](./media/image-20250723172145296.png)

特别注意：：在上传测试代码时，不能连接蓝牙模块，需要把蓝牙模块取下，否则程序上传不成功。先上传测试代码，成功后再连接蓝牙和蓝牙模块，配对，连接APP。

6.APP下载和简介

下载链接：http://8.210.52.206/keyes-IoT.apk

二维码下载：

![](./media/image-20250723172249078.png)

下载安装后打开

![](./media/image-20250723172302554.png)

出现如下图界面。

![](./media/image-20250723172345221.png)

控制板上传代码成功后，连接蓝牙，上电后，蓝牙模块上LED闪烁。开启手机蓝牙，点击左上角的SCANING按钮，进行蓝牙搜索和连接。

![](./media/image-20250723172401096.png)

点击连接，蓝牙BT24连接成功，显示如下图，蓝牙模块上的LED变为常亮。

![](./media/image-20250723172414786.png)

（2）苹果系统手机（平板电脑）APP

打开App Store。

![](./media/image-20250723172457391.png)

在APP Store上搜索IoT keyes，点击获取，下载安装APP即可。

![](./media/image-20250723172511658.png)

下载安装后打开

![](./media/image-20250723172526618.png)

出现如下图界面。

![](./media/image-20250723172613635.png)

点击Connect，再点击BT24就可以连接上蓝牙了,此时蓝牙的红色指示灯为常亮。

![](./media/image-20250723172635961.png)

![](./media/image-20250723172700069.png)

在APP中有16个控制按键，当手机APP成功连接上BT-24蓝牙后，我们按下APP控制按键，每按下一个APP上的按键蓝牙发送一个控制字符，蓝牙模块就能接收到一个对应的控制字符，我们在编程时，根据对应按键控制字符设置智能家居各传感器或模块的对应功能。在这个实验中，我们先测试出16个按键对应的控制字符。

7.实验结果

上传好测试程序，如上打开APP连接上蓝牙，点击一下![](./media/image-20250723172730804.png)点亮黄色LED灯，再点击一下熄灭LED灯。打开串口监视器，设置波特率为9600。按下手机APP上功能按钮，我们可以看到APP上功能按钮对应的控制字符，如下图：

![](./media/image-20250723172909795.png)

经过测试，我们得出了手机APP上各个按钮对应的控制字符和各个按钮对应的功能，这里我们整理了一个表格如下：**（说明：下图是安卓手机的APP一些操作说明界面（ios的界面基本一样））**

| 按钮:![](./media/image-20250723172949502.png)    | 功能：配对连接HM-10蓝牙模块                                  |
| ------------------------------------------------ | ------------------------------------------------------------ |
| 按钮:![](./media/image-20250723173021561.png)    | 功能：断开蓝牙连接                                           |
| 按钮:![](./media/image-20250723173048986.png)    | 控制字符：点一下发送 “a”； 再点一下发送“b”。                 |
| 按钮:![](./media/image-20250723173108962.png)    | 控制字符：点一下发送 “c”； 再点一下发送“d”。                 |
| 按钮:![](./media/image-20250723173128961.png)    | 控制字符：按住发送 “e”； 松开发送“g”。                       |
| 按钮:![](./media/image-20250723173148011.png)    | 控制字符：按住发送 “f”； 松开发送“g”。                       |
| 按钮:![](./media/image-20250723173207837.png)    | 控制字符：点一下发送 “h”； 再点一下发送“S”。                 |
| 按钮:![](./media/image-20250723173229733.png)    | 控制字符：点一下发送 “i”； 再点一下发送“S”。                 |
| 按钮:![](./media/image-20250723173249817.png)    | 控制字符：点一下发送 “j”； 再点一下发送“S”。                 |
| 按钮:![](./media/image-20250723173309703.png)    | 控制字符：点一下发送 “k”； 再点一下发送“S”。                 |
| 按钮:![](./media/image-20250723173408208.png)    | 控制字符：点一下发送 “l”； 再点一下发送“m”。                 |
| 拖动条: ![](./media/image-20250723173537464.png) | 控制字符：拖动拖动条松开时发送“t 50#”，字符‘t’表示起始字符；数字50表示舵机1的角度；字符‘#’表示终止字符。 |
| 按钮:![](./media/image-20250723173601218.png)    | 控制字符：点一下发送 “n”； 再点一下发送“o”。                 |
| 拖动条: ![](./media/image-20250723173622983.png) | 控制字符：拖动拖动条松开时发送“u 34#”，字符‘u’表示起始字符；数字34表示舵机2的角度；字符‘#’表示终止字符。 |
| 按钮:![](./media/image-20250723173646331.png)    | 控制字符：点一下发送 “p”； 再点一下发送“q”。                 |
| 拖动条: ![](./media/image-20250723173839486.png) | 控制字符：拖动拖动条松开时发送“v 100#”，字符‘v’表示起始字符；数字100表示led2的PWM值；字符‘#’表示终止字符。 |
| 按钮:![](./media/image-20250723173911156.png)    | 控制字符：点一下发送 “r”； 再点一下发送“s”。                 |
| 拖动条: ![](./media/image-20250723173954966.png) | 控制字符：拖动拖动条松开时发送“w 153#”，字符‘w’表示起始字符；数字153表示小风扇的PWM值；字符‘#’表示终止字符。 |











